{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Homework WK2 name:曾露莎\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  Outcome  \n",
       "0                     0.627   50        1  \n",
       "1                     0.351   31        0  \n",
       "2                     0.672   32        1  \n",
       "3                     0.167   21        0  \n",
       "4                     2.288   33        1  "
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据\n",
    "\n",
    "train = pd.read_csv(\"diabetes.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 768 non-null int64\n",
      "Glucose                     768 non-null int64\n",
      "BloodPressure               768 non-null int64\n",
      "SkinThickness               768 non-null int64\n",
      "Insulin                     768 non-null int64\n",
      "BMI                         768 non-null float64\n",
      "DiabetesPedigreeFunction    768 non-null float64\n",
      "Age                         768 non-null int64\n",
      "Outcome                     768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "无缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness     Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.000000   \n",
       "mean      3.845052  120.894531      69.105469      20.536458   79.799479   \n",
       "std       3.369578   31.972618      19.355807      15.952218  115.244002   \n",
       "min       0.000000    0.000000       0.000000       0.000000    0.000000   \n",
       "25%       1.000000   99.000000      62.000000       0.000000    0.000000   \n",
       "50%       3.000000  117.000000      72.000000      23.000000   30.500000   \n",
       "75%       6.000000  140.250000      80.000000      32.000000  127.250000   \n",
       "max      17.000000  199.000000     122.000000      99.000000  846.000000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age     Outcome  \n",
       "count  768.000000                768.000000  768.000000  768.000000  \n",
       "mean    31.992578                  0.471876   33.240885    0.348958  \n",
       "std      7.884160                  0.331329   11.760232    0.476951  \n",
       "min      0.000000                  0.078000   21.000000    0.000000  \n",
       "25%     27.300000                  0.243750   24.000000    0.000000  \n",
       "50%     32.000000                  0.372500   29.000000    0.000000  \n",
       "75%     36.600000                  0.626250   41.000000    1.000000  \n",
       "max     67.100000                  2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## 各属性的统计特性\n",
    "train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Target 分布，看看各类样本分布是否均衡\n",
    "sns.countplot(train.Outcome);\n",
    "plt.xlabel('Outcome');\n",
    "plt.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据样本没有很均衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fa779dc97b8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779c86eb8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779c37160>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fa779bde3c8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779c08630>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779bb0898>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fa779b5ab00>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779b82da0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fa779b82dd8>]],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对数值型特征，直方图\n",
    "numerical_features = train.columns.drop('Outcome')\n",
    "\n",
    "train[numerical_features].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa779ae9358>"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'Pregnancies']],\n",
    "              x=\"Outcome\",y=\"Pregnancies\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "无糖尿病的怀孕次数普遍较低，有糖尿不的怀孕次数分布比较广，从低到高都有"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa779d1f438>"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'Glucose']],\n",
    "              x=\"Outcome\",y=\"Glucose\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Glucose无糖尿者在100左右正态分布，有糖尿病者，数据分布广，在数据较高处人数多。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa779cda400>"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'BloodPressure']],\n",
    "              x=\"Outcome\",y=\"BloodPressure\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二者没有什么区别\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa779d798d0>"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'SkinThickness']],\n",
    "              x=\"Outcome\",y=\"SkinThickness\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二者区别较小\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa7798df3c8>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'Insulin']],\n",
    "              x=\"Outcome\",y=\"Insulin\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二者有区别"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa7798be630>"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3Xd8leX9//HXJznZIWQPNgiCDEGIYagoIIqKo2pbHIgtFVuts62r2varbX9qW7HuorbiolXcoGhkypSAykZmQlgJJCHr7HP9/jgHRJlKzrlPcn+ejwePc8591gdIzvtc130NMcaglFLKvmKsLkAppZS1NAiUUsrmNAiUUsrmNAiUUsrmNAiUUsrmNAiUUsrmNAiUUsrmNAiUUsrmNAiUUsrmHFYXcDyys7NNp06drC5DKaWalWXLlu0xxuQc63HNIgg6depESUmJ1WUopVSzIiKlx/M47RpSSimb0yBQSimb0yBQSimb0yBQSimb0yBQSimb0yBQSimb0yBQSimb0yBQSkUN3TrXGhoESqmosGDBAi688EK2bt1qdSm2E7YgEJHuIvLlQX9qReR2EckUkWIR2RC6zAhXDUqp5mPmzJk4nU42bdpkdSm2E7YgMMasN8b0M8b0AwYAjcA7wD3ATGNMN2Bm6LZSSimLRKpraASwyRhTClwKTA4dnwxcFqEalFJRbP/5AZ/PZ3El9hOpIBgDTAldzzPG7Axd3wXkRagGpVQz0NjYaHUJthP2IBCReOAS4M3v3meCXwEOO0xARCaISImIlFRWVoa5SqVUtNAgiLxItAguAJYbY3aHbu8WkQKA0GXF4Z5kjJlkjCk0xhTm5BxzOW2lVDPn8XgAqK+vt7gS+4lEEFzFN91CAO8D40LXxwHvRaAGpVSUa2hoADQIrBDWIBCRFGAk8PZBhx8GRorIBuDc0G2llM3V19UGLzUIIi6sO5QZYxqArO8c20twFJFSSh3QGGoROJ1OiyuxH51ZrJSKCk5XMAA0CCJPg0ApFRW83uD8AW/opLGKHA0CpVRU2D+RzOPVIIg0DQKlVFQRqwuwIQ0CpVRUiIkJfhzFxMZaXIn9aBAopaJCfFxc8DI+3uJK7EeDQCkVFeITggGQkJBocSX2o0GglIoKiYlJACQlJVlcif1oECilosL+AEhM1BZBpGkQKKWiQmJScvBSgyDiNAiUUlFhfwAkJCRYXIn9aBAopaKCwxFc+iwuNHpIRY4GgVIqKsSG5g/E6jyCiNMgUEpFhf17Fu+/VJGjQaCUigqBQAAAv99vcSX2o0GglIoKbrcb+GbLShU5GgQ289RTT/Ho3/5mdRlKHcLtdgHgcrksrsR+wr1VZbqITBWRdSKyVkQGi0imiBSLyIbQZUY4a1DfNnXqVD6cPt3qMpQ6RENoi0rdmCbywt0i+CcwwxjTA+gLrAXuAWYaY7oBM0O3lVI2tz8IdM/iyAtbEIhIa2Ao8CKAMcZjjKkBLgUmhx42GbgsXDUopZqPhsbG4KUGQcSFs0XQGagE/iMiX4jICyKSAuQZY3aGHrMLyAtjDUqpZsAYQ2NjsEuovr7O4mrsJ5xB4AD6A88aY04DGvhON5AJDhg+7KBhEZkgIiUiUlJZWRnGMpVSVnO5XARC8wecoZaBipxwBkE5UG6MWRK6PZVgMOwWkQKA0GXF4Z5sjJlkjCk0xhTm5OSEsUx70kk7Kpo0hj7842LMgS4iFTlhCwJjzC5gm4h0Dx0aAawB3gfGhY6NA94LVw3q2w7+8Nex2iqaNDQ0AJCZEMDpch+YXKYiwxHm178FeE1E4oHNwM8Ihs8bIjIeKAV+EuYaVIjP5ztw3e126yqPKmrsbxFkJATY7TS4XC6Sk5Mtrso+whoExpgvgcLD3DUinO+rDu/gVoC2CFQ02T9kNCvRD8RRX1+vQRBBOrPYRrxe72GvK2W1/UGQkxjsEqqtrbWyHNvRILARDQIVraqqqgBonxpccK6mpsbKcmxHg8BGDj4Bpys8qmhSVVVFjEC7lOB5rD179lhckb1oENjIwUGgw0dVNNmxYwc5yZCdFECAnTt3HvM5quloECilLLetrIycBA9xMZCVBOXl5VaXZCsaBDYlIlaXoBQQHNa8tXQr7VOC3ZVtkz1s2rjB4qrsRYPARvTDX0WjsrIyvF4fHVsFzw90bOWjrGyb7ksQQRoENnJwEGgoqGixatUqAE5KCwZB1zQfAWNYu3atlWXZigaBUspSK1eupHUC5CYFBzN0a+07cFxFhgaBjRw8UkhHDaloYIxh+bISerR2s7+RmhJn6NAqwBfLl1tbnI1oENiIBoGKNmVlZeytqqZnxrcnOPZMd7Nq9So9TxAhGgQ2cvAkMp1QpqLB0qVLAeid+e0g6J3pxev18dVXX1lRlu1oENjIwauPHnxdKat8/vkS8lMMOUnfXna6R7qXuFj4/PPPLarMXjQIbOTg9YV09VFlNafTyRdffEHfzEO7f+Jj4ZR0D4sWLtBuzAjQILARt9t94LoGgbJaSUkJXq+P07IO/7N4WpaHHTt3UVZWFuHK7EeDwEYOPvGmJ+GU1ebMmUNqPHRPP3w3Zf8cDwLMnTs3soXZkAaBjexf8/2715WKNJfLxaKFCxiQ5SL2CJ9CGQmGbuk+Zs38VLuHwiysQSAiW0VkpYh8KSIloWOZIlIsIhtClxnhrEF9o7q6+rDXlYq0efPm0eh0cUa++6iPG5LnYmtpGevXr49QZfYUiRbBMGNMP2PM/i0r7wFmGmO6ATNDt1UEVFRUgMQgjvjgdaUsMm3aB+QmG04+QrfQfoPyPMTFwrRp0yJUmT1Z0TV0KTA5dH0ycJkFNdhSaWkpJqk1/sTWbN261epylE2tX7+eFStWMqJNIzHHWPIq2WEYkuvik48/1l3LwijcQWCAT0RkmYhMCB3LM8bs33ViF5AX5hoUwZnEq9eswZeYiS8pk3Xr1+tcAmWJ119/jSQHnN3m291Cr36dzKtfH7ph/agOLjxeL1OnTo1UibYT7iA40xjTH7gAuFlEhh58pwmeATrsWSARmSAiJSJSUllZGeYyW77Nmzezr6YGX1oB/rQCXE4n69ats7osZTNr165l7tx5nN+ukWTHt3/1y+odlNU7DnlO2xQ/A3PdvPnmG+zduzdSpdpKWIPAGLM9dFkBvAMUAbtFpAAgdHnYzmpjzCRjTKExpjAnJyecZdrCp59+CiL409vjS2uLxDiCx5SKEL/fz5NPPkFaAlzQwfm9nntll0Z8Xg/PPfdcmKqzt7AFgYikiEir/deB84BVwPvAuNDDxgHvhasGFeR2u/nwo4/wtW6HiUsCRwKe9A58UlxMQ0OD1eUpm5g6dSpr1qzlqi51JB36xf+o8pIDXNS+keLiYhYtWhSeAm0snC2CPGC+iHwFfA5MN8bMAB4GRorIBuDc0G0VRtOnT2dfTQ2evN4HjnnyetHY0MC7775rYWXKLtatW8cLLzzPadkehuT/sFntl3Z20j41wKOPPKyj3ppY2ILAGLPZGNM39KeXMeYvoeN7jTEjjDHdjDHnGmOqwlWDgoaGBia//DKBVvn4W+WTULaYhLLFBFJz8Ldux2uvv66jMVRYVVRU8Pt77yHd4WV8j3p+6OZ4cTFwU69aXA37uO/ee2hsbGzaQm1MZxa3cJMnT2ZfTQ3O9kUgQkxjFTGNwex1tT+dxsZGXnzxRYurVC1VVVUVd/3utzTW7eOOPvtIiz+xGcJtU/zc3LOWTZs384cH7telUpqIBkELtmHDBqZOnYon+2QCKdmH3B9IysCTewofTJt2YN9YpZpKZWUlt916CzvLy7itTw3tUptmD4xTs7z8okc9y5Yt5+677tKWQRPQIGihfD4fjzz6KMaRiLv96Ud8nLvtAIhP4ZFHH9UVSVWT2bBhAzff9Cv27NrOb/vuo2dG085ZOavAzS971rFy5Qpuu/VWPWdwgjQIWqg333yTjRs20Nh+IDgSjvzA2DgaOwxmW1kZr776auQKVC3WnDlz+PXNN+Gr28M9/WqOuLroiRqc7+H2PrWUb93IjRNu0M3uT4AGQQtUXl7Ov//9b3wZHfFldDrm4/3p7fFmncSrr77G5s2bw1+gapG8Xi9PP/00f/rTn+iQ5OJPA6ronBbeLVH7ZXv5w4Aa4j013HH77bz55pu6UukPoEHQwhhj+Nvf/47PxODqMJjjHaLh6jAQ44jnkUce1f2M1fe2fft2fn3zTbz55puc287JPafVkJ4QmQ/ktil+/jSgmr4ZTp5++mnuu/deHQn3PWkQtDAzZszgqy+/xNl2ACb+0HVbjsiRSGO7ItavX8d77+kcP3X8Zs6cyQ2/GM+2LRu4tU8d153cSFyEP1lS4gy39qlj7MkNLP18Mb8Y/3O++OKLyBbRjGkQtCDV1dU89fQzBFrl4c3p/r2f78vsgr91W/41aZKefFPH1NjYyMMPP8xDDz1E24R6/lxYTWGOdQMORGBkOxd/GFCDw7WXO++8I9hFqosrHpMGQQvyxBNP0tDYgLPjkOPuEvoWEZwdBuPx+nnssce0r1UdUWlpKb+8cQIfz5jBpZ0aua/fPrKTAlaXBUCnVn4eHFDFmfkuXn75ZX5z551UVem81aPRIGgh5s2bx+zZs3Dn9yWQ9MM3fTOJaTjbnMbixYv55JNPmrBC1VLMnTuXX944gZqKcu7ut48rujiPuN2kVRIdcMMpDdzYs461q1dwwy/Gs3r1aqvLilpR9t+nfoiKigoeeeRRAik5eApOPeHX8+b1JNAqn8cmTqS8vLwJKlQtgTGG119/nT/+8Y8UxDfy4IBqemZGd7fLGfke/tC/hlhXFbfdeiuzZs2yuqSopEHQzDmdTu677/c0utw0dhkKMbEn/qISQ2PnoXj8hvt+/3vd6F4RCAR4+umnmTRpEoPy3Py+fw2ZidHRFXQsHVr5+b8B1XRp5eahhx7k7bfftrqkqKNB0Ix5vV4efPBBNm7aSEOXszGJrZvstU1CKg1dhlFWto0HHvgDbvfRNxlXLZcxhokTJzJ16lTOa+fklz3rIz4q6ESlxBnu6ruPflkennjiCd544w2rS4oqzey/U+3ndru5//4HWLRoEa4Og/Cnd2jy9/CntcHZ6Qy++GI5d9+jqz3akTGG5557jg8++IDRHZ1c0+3Y+wxHq/hYuLV3HUW5bp555hmmTZtmdUlRQ4OgGaqqquI3v/0tS5YsxtVxCN7cU8L2Xr7sbjg7n8WXX37J7XfcocNKbeb111/nf//7H+e2dfHjLo0/eAnpaBEbA7/sWc+pWV7+8Y+/M2fOHKtLigoaBM3M6tWrGf+LG1i9Zi3OLufgze0R9vf0ZXfDedJwNmzczC9umKATdWziww8/5Pnnn2dwnptrT25o9iGwnyMGbuldS9fWPv7y54dYvny51SVZToOgmfD5fEyePJlbbrmV6kYv9T0uwpfVJXLvn9GR+lMuptYDd955J88//7yuVtqCFRcX8/e//Y0+mV5uOKW+2XYHHUlCLNzZp5bcRC+/v+9evvrqK6tLslTYg0BEYkXkCxGZFrrdWUSWiMhGEfmfiMSHu4bmbvPmzfzqppv4z3/+gzu9I3WnXEwgOSvidQSS0qk75WLcWd147bXXmDDhRr7++uuI16HCa9q0afz1r3+he7qXW3rX4mihXxdT4gx3960hw+Hirt/9lqVLl1pdkmUi8V98G7D2oNuPABONMV2BamB8BGpolpxOJ//617/4xS9uYOOWMpwnDcN10jlHX1Y63GLjcHc+k8ZuI9m6Yzc33ngjTz75JA0NDdbVpJqE1+vlmWee4e9//zunZnr5zan7SPyem8w3N+kJhvv6VZOX4Obee+5h6tSptpxRH9YgEJF2wEXAC6HbAgwHpoYeMhm4LJw1NEfGGD777DOuGzeOKVOm4MrsQl2vy/Fldra6tAP86e2p6/Uj3Dndeeutt7h27HXMnDnTlr9ELcGuXbu49ZZf88YbbzCirYvb+tQS3wRTUpqDtHjDvf1q6JPh5KmnnuKB+++nrq7O6rIiKtwtgseBu4D9M0+ygBpjzP7piOVA28M9UUQmiEiJiJRUVlaGuczoUVpaym9+81seeOABKup9NPa4EHfnszBxiVaXdihHAu6OQ2g45WKq3MJDDz3ELbfeysaNG62uTB0nj8fDlClT+Nn149i6aT2/7l3HuO4NLbY76EhS4gy396nj6q4NLFq0gOvGXsuMGTMIBJrHpLkTFbaGn4iMBiqMMctE5Jzv+3xjzCRgEkBhYWGL/5pZV1fH5MmTefvtdzAxDlwdBgVHBEn0/0YGUnOoP2U0cZVfs3rdcm644QYuvvhifv7zn5Oenm51eeowjDEsXryYp558gu07dnJatodruzWQEyULx1lBBEZ1cNEjw8vLX/t5+OGHeffdd7jttts55ZTwDdGOBhKupryI/D9gLOADEoE04B3gfCDfGOMTkcHAn4wx5x/ttQoLC01JSUlY6rSa3+/nww8/ZNLzz1NXW4snpzuetv0xcUlheb+kdR8C4OxxYVheH5+bhO1fEF+5lpTkFMaP/zmXXHIJDkcL72xuJowxLFmyhFdefpnVa9ZQkGK4pmsdp2Z5La3r1a+T+Wxn8NxXx1Z+OqT6uPZk6yYwBgws3BXPG5tbUeOGIYMHc+3YsfTs2dOymn4IEVlmjCk85uMi0acbahH81hgzWkTeBN4yxvxXRJ4DVhhjnjna81tqEKxcuZLHH/8nmzZtJNAqH2f7gQRSwjsaKOxBEBLTWE3itiXE1u6gQ8eO3H7bbfTv3z+s76mOLBAIMH/+fF5+eTIbN24iKwkual/POW3cUdEN9NflaayriTtwu0e6l/v611pYUZDTBx9vS+KT7cnUe2BA//5cO3Ys/fr1Q5rBxIrjDQIrvqbdDfxXRP4MfAG8aEENlqqsrOS5555j5syZkJCKs8s5wRPBzeAH63gFkjNoPPl8HDWllJUv5c4772To0KHcdNNN5OfnW12ebdTV1TFjxgzeefstduzcRV6y4Rc9GhiSHx0BEO2SHHBZZyej2juZtSORj1Yv5447ltO160lcccWVDB8+nIQEC0fxNZGItAhOVEtpEXi9Xt566y3+89JLeDxeXHm9g8tGx8Yd+8lNJFItgm8J+IjftYrEXStwxMYw9tpr+elPf9oifoGi1datW3nnnXf4eMZHuNweuqX7OK+tk9NzPVE5OSxaWwTf5fHD/F0JFG9PZnt9DK3TWjH64ku49NJLyc3Ntbq8Q0RV19CJaglBsHz58uD6/tu24UvvgKt9ESYxLeJ1WBIEIeKuJ2Hb58RVbyW/oIA7br+dgQMHRryOlsrtdjNv3jw++OB9VqxYSVwMDMp1MbK9i06t/FaXd1TNJQj2MwbWVjsoLk9i+d54BGHQoEFcfMklFBUVERsbHWNvo7lryFb27t3L008/HdwQIzGNxm4j8ae3t7osS5iEVFxdh+Pdt51d25Zw9913c+aZZ3LLLbeQl5dndXnNVllZGdOmTWPGRx9SW1dPbrLhJyc1MrTATVp89H/Ra45EoGemj56ZdVQ6Y5izI4F5yxexcNEicnOyGX3xJVx44YVkZ2dbXepx0RZBmPj9ft5//30mTXoel9uNK79PsBsoxtrstbJF8C0Bf6i76CviHLGM//nPueKKK3R00XHyer3Mnz+f9997jy++/JJYgf7Zboa1ddMzwxuV3T9H09xaBIfjC8DyPfHM3pHI6qo4YmJiOOOMIVxyyaUMGDCAmJjIn5TRFoGFNm3axKN/+xvr160LrunfdXCTbhrTIsTE4mnTF29WFxLLFvPss8/yySfF/O53v6VHj/CvqNpc7dy5k2nTpjF92gfU7KslJ8lwZRcnQwtcpCdE/5e6lswRA0W5HopyPexujGHOjkTmLZnPZ5/NpyA/j0suvYwLLrggKufWaIugCfl8Pl599VVefuUVTGw8je2K8GV2iarRQFHTIjiYMTiqS0nethjxubjqqqsYN24c8fG6HiEEx/6vXLmSN998gwXzF2AwnJblYVhbF30ym9+3/8NpCS2Cw/EGYFllPLO2J7GuxkFcnIORI8/jxz/+MZ07h3/JmCY5WSwidx7tycaYx35Abd9bcwiCrVu38uBDD7F50ya8mV1wdRwEjuhaFiKhbDFxezYA4E/OIpCcibvDIIurOojPTcK2z4nfs4H2HTrwhwceoFu3blZXZRmfz8fcuXN5443/sX7916TGw7CCRoa3dZPVTPYLPl4tNQgOtr0hluLyRObvSsTjh8LCAfzkJz/l9NNPD9uchKbqGmrVRPW0WMYYPvroIyY+/jg+YnF2HYEvo6PVZR1WTGMV4g/OIHXU7cJ3jMdHnCMBd+ez8GV2ZlvpAn75q1/x65tv5rLLLmsWk3eaijGG+fPnM+lfz7GtfDv5KYZxJzdwZoGbhOgYjKJ+gLYpfq7v3sAVXRqZvT2RT1ct466SZfTseQq/+tVN9OnTx7LajhoExpj/i1QhzZHP52PixIlMnz4df1oBzs5nY+KTrS6r2fO3bkf9KZeSuGUe//znP1m1ahV33323LbqKVq9ezXPPPsPKVaspSDHc0rueATnROfZf/TCt4gyXdHJyYQcnn+1M4J3Na7nllls468wzmXDjjbRvH/lRhUcNAhF54mj3G2Nubdpymg+n08kf//QnPl+yBHfBqXja9m8WC8Q1FyYuEWe3kcTvXMHMmTPZu3cvf/7zn0lNTbW6tLAwxjBlyhSef34SafFwffd6zi5wE2uTHymnT0hMTGT06NFMmzYNpy/q2qtNzhEDw9q6GZLvZkZZEtMXL2DxksXcc8+9jBgxIrK1HOP+XwKrgDeAHYB+LyHYEvj973/P8i++CG0er6NcwkIET5u+BOJT+PKr+dx1991MfOyxFjcj2ev18o9//IMZM2YwMNfN+B71LX5DmO9q9AmjR4/m17/+NcYY5k1/w+qSIiYhFi7t7OTsNi6eWp3GQw89xLZt2xg3blzEukSP9eNWAPwY+CnBVUT/B0w1xtSEu7BoNnHiRJYvX46z81n4su17MjNSfNldccbEsmb1bB555BEeeOCBFnXOYPLkycyYMYPLOjXyo87OaBpkFjHJDsO0adMwxjB9+nTyHNE/mrGppScY7u63j3+vS+Gll16ioKCA888/6sLMTeaoDU9jzF5jzHPGmGHAz4B0YI2IjI1IdVFo4cKFTJ8+HXfBqRoCEeTL7Iy77QBmzZoVnKXdQvh8PqZP+4DTsj1c3sWeIQCQ5DC4XC7eeustXC4XSTYMAoC4GJhwSgNtUgzvv/dexN73uHogRaQ/wb2HrwU+ApaFs6ho5fF4mPj445jkDDxtdEnlSPMU9CGQks2TTz5FY6N1a9U3pY0bN1Jds4/Tsj1Wl6KihAj0y3Kxes0a6uvrI/KeRw0CEXlQRJYBdwJzgUJjzHhjzJqIVBdl5syZQ2VFBc52p4MF08VtT2JwtR9ITU01xcXFVlfTJDp37kxWRjqLK6Jrzomyji8ASysT6XlKD1JSUiLynsf6NLufYHdQX+D/ActFZIWIrBSRFWGvLsq88+67kJSOP+2w2yyrCPCn5hJIyebtd96xupQmkZCQwE/GXMWaKgdTNibja1nzxNT35PTBc2tSqXQK1469LmpOFod/DnQzUVFRwdo1a3C3HRBVS0bYjgierK6Ubl1MWVkZHTp0sLqiE3bFFVewY8cO3nvvPTbVxnFTzzoyW9jMYXVs2+pjeXJ1ayoaY5gw4QYGDx4csfc+1sni0u/+ARqAstB121iwYAFA1M4athNfevDDf/78+RZX0jQcDgd33HEH999/P2XOFO5eksGUjcns8+gXDjvY3RjD82tTeGBpOp74DB6bOJGrr746oiPjjnWOYJCIzBGRt0XkNBFZRXBewW4RGXWM5yaKyOci8pWIrBaR/wsd7ywiS0Rko4j8T0SaxXTRhYsWQVJrAknRt3Kg3ZiEVExKFgsWLLS6lCZ17rnn8sKLL3LWsHP5eFsyv1mUyWsbkqlxayC0RDsbY/jXmmDwL9nTih9dfgUvvPhv+vXrF/FajtU19BRwH9AamAVcYIxZLCI9gCnAjKM81w0MN8bUi0gcMF9EPiJ44nniQZvXjweePdG/SDjV19ezfPlyPFk6cSxaeFq3Z82ar6iqqiIzM9PqcppMu3btuP/++xk3bhyvvvoqxcXFfFqeRL8sD2e3Ca42apfZxi2Rxw8llfHM3ZnE2moHCfFxXPnjH/HTn/6UrKwsy+o6VhA4jDGfQHAEkTFmMYAxZt2xmi0muKzp/rFPcaE/BhgOXB06Phn4E1EeBIsWLcLv8+HN7GR1KSfG7/nWNP56f/MdsujL6ITZ8SWfffYZl156qdXlNLn27dtz7733ct111zFt2jQ++nA6y1bUkpEIZ+YFdx/LS9bzCM2BMVBaH8u8HYksrEik0QsF+XmMHz+aiy66KCq+yBwrCA7+SXN+575jzvgQkViCcw66Ak8Dm4AaY8z+hUTKgcMOwRGRCcAEwPITgsXFxZCQSiAlx9I6TpT4PIy+5Jtp/G988LHVJf1ggaQMSEqn+NNPW2QQ7Ne2bVtuvPFGxo8fz6JFi5g27QOmf76UD0qT6ZLmZ2Cui6JcT7NflrpDqo/SuuDSqh1b+emQ2vzXGtreEMuS3fF8XpnEjgYhLs7B0KFnM3r0aPr27WvJjmVHcqwg6CsitQTXGEoKXSd0+5gDn40xfqCfiKQD7wDH3bdijJkETILgfgTH+7ymtnfvXkpKSnDn9m72o4WMI/5b0/iNoxmvlCqCO7MLq1YuZ+fOnRQUFFhdUVg5HA7OOusszjrrLCoqKoIzrGd+ypQNG5myMYVu6T4G5bo5PcfdLHcqu/bkRsrqgx9HzXkfgt2NMXxeEc/iyiS21cUgIvQ99VR+Onw4w4YNIy0tzeoSD+tYy1A3yernxpgaEZkNDAbSRcQRahW0A7Y3xXuEy6effkogEMCX3dXqUk5cbDyuxireeuut4O1WzfvEtzerKwnbl/Pxxx9z/fXXW11OxOTm5jJmzBjGjBlDeXk5s2fPZvbMT3nl61Je/TqFruk+Ts92MyDHQ05S824pRDtjgt/8SyrjKdmTSFld8FucK7tPAAAYh0lEQVR+r549uWXECM4+++xmsYF92NY4FJEcwBsKgSRgJPAIMBu4EvgvMA6I3IIaP8AnnxQTSMnR0UJRyCSk4k8r4ONPiiO6UmM0adeuHWPHjmXs2LFs3bqVuXPnMm/uHF7fuIXXN6bQOc3PgGw3hTlu2qRoKDQFY2BLXSzLKuNZuieJXQ2CiNCrZ09uPucchg4dSl5entVlfi/hXOy2AJgcOk8QA7xhjJkmImuA/4rIn4EvgBfDWMMJKS8vZ9OmjXjaF1ldijoCb0ZndpYuZOPGjbbe1hKgU6dOdOrUiXHjxlFeXs78+fOZO2c2U9etZ+rmZNqmBhiQ7eL0HA8dUv3NvaczogIGNuxzhL75J7HXCTExMZzWrx9XnX02Z555pqWjfk5U2ILAGLMCOO0wxzcDzeKTddmy4Np6+ycwqejjy+gIpQtZtmyZ7YPgYO3atTvQfVRRUcH8+fOZN3cu01as4P2tyeQmGwZkuyjM8XBSmk93QDsMXwDW1cSxtCKe5XsT2eeGOEcshaefztChZzNkyBBat25tdZlNwmbbX3w/q1atQhJSMAm6dXO0MnFJkNSalStXMmbMGKvLiUq5ublcfvnlXH755VRXV7NgwQLmzZtL8bLlfFTmJysJTs92MjDXQ5c0n61bCv4ArK2J4/OKYJ9/vQcSExIYOGgQQ4cOZdCgQRFbCC6SNAiOoqqqCl9cSrMfLdTS+eJSqaqqsrqMZiEjI4PRo0czevRo6urqWLRoEXPmzObTJZ8zY5uf7CQoynFSlOumcyt7dB8FDKyrcfB5RQIlexKpdUNSYgJDzjqTc845h6Kioha3K953aRAchdfrRXfnbB48Hq/VJTQ7rVq14rzzzuO8886jrq6OhQsXMmvWLD4uWcqHZUm0STEMyXMyJN9NdjOfp3A45fWxLNiVwMKKJKpdkJgQz5AzzmTYsGG2+PA/mAbBUXTr1o2Vq9dAwA8xTTKSVjU1Y4hz7qV79+FWV9KstWrVivPPP5/zzz+furo65s6dyyeffMzUFSt5a3MyPTJ8nJnv4vQcd7PeT7nWIyzancCC3UlsrY0hJiaGgUVFnHf++QwePJjERHvuC9GM/0vDr6ioiLfeeou4inV483tZXY46jLg9X2O8LoqKmsX4g2ahVatWB7qPdu7cSXFxMR/P+Ijn1+7k1Q2pnJHnYnhbF+1S/VaXelxMaMTPzO2JLK1MwBeAbl278uvrRjFixAgyMjKsLtFyGgRHUVRURNHAgSwtWY6/VT6BlOY7PKwlinHWkFReQp9T+zJ06FCry2mRCgoKuO666xg7diyrVq3i/fffD55T2J5I93QfI9o6Kczx4Iie1RIOcPlg4e4EZu5IZltdDMlJiVxy2YWMHj2aLl26WF1eVNEgOAoR4be/+Q2/uulmWP8hDScNx99adyeLBrF1u0jZOJO01CTuuut3UbVuS0skIvTp04c+ffpw8803M2PGDN57522eWV1BVhJc2L6BswtcxEdBD2q9VyguT6R4ezL1Huh6Uhd+e+PljBgxgqSkJKvLi0oaBMeQm5vLc88+w+/uuputG4px5/XC06YfxMZZXZo9BXzE71xB4q6VtGlTwN//9rcWv85QtElPT2fMmDH85Cc/YfHixbz+2qu8snoN75WmcH7bBs5t5ybJEfn1jmrcwkfbkpi9IxmXzzBkyBCuvvpqevXqZctZ59+HBsFxyMnJ4aknn+Cpp55ixowZJFRvwdmuEF9G52Y1tDSQnIlp3AuAPzmLQLL1y98eN2Nw1JSRVL4UXLUMHzGCW2+9tcVM6GmOYmJiGDJkCEOGDGHFihW8+sorvLl0KTPKU/hRp3rOaeOOSJeRywcfliXx0bZkvAFh2PDhXHPNNdr98z1IcNuA6FZYWGhKSkqsLgOAlStX8tjEiWzZvBmTnIErrze+zC7NZlRR0roPAXD2uNDiSo6TCeCo2kLi7lVIw17at+/AnXfewWmnHTJpXUWBdevW8dyzz/LlV19RkGL4aZc6Tsv2Htf3pb8uD67MebyrjwYMzNuZwNtbUqlxw7Bhwxg/fjzt2rU7kb9CiyIiy4wxhcd8nAbB9+fz+ZgzZw6vvvoaW7dugYRUXDmn4MvuhomL7uFnzSYIfG7i9mwksXItuGpp174911x9NSNHjsTh0IZsNDPGsGjRIp595mm2lW9nQLaHcd3rj7k89vcJgh0NMbywLo2N+2Lp1bMnN918M7166ci+7zreINDfqB/A4XBw7rnnMmLECJYsWcJrr73OypVLYcdyvOkd8Ob0wN8qv1l1G0UFY4it301c5XriqrdCwM8pPXtyzdVXM2TIED0h3EyICEOGDKGoqIipU6fy4osvcO/n8VzTtY4z8j0n9GvhD8CHZYm8uzWFxOQU7rvvNkaOHKnnAE6QBsEJEBEGDRrEoEGD2Lx5M9OnT+ejGTNoXL8FklrjzjwJb9ZJulbRMYi7nriqTSTs3QTOGpKSkjn/kou56KKLdCG5ZszhcDBmzBiGDBnCIw8/zKQ1a1hd7eJn3Rt+0OiiOo/w9Oo01lQHN+m5/fbbm/WKn9FEu4aamNvtZu7cuUybNp0VK74CwN8qH29WV7wZncARb2l9UdM15PfiqN5K/N5NxNbuAKBXr96MHn0R55xzjg7za2H8fj+vvPIKL730Ep3SAtzaax/Z39k059WvgzvmXXty4yHP31oXyz9XpVPrc3Dnnb9h1KhR2go4DnqOIArs2rWL4uJiPpoxgx3bt0NMLN7W7fFmdQ3OR7DgBLOlQRAIEFu7nbi9m4jftw3j95KXn88Fo0YxcuRI2rbVORot3cKFC/nzQw8Rb5zc07f6uDbLWVvt4LEVrUnLyOKhP/+FHj2Oe8db29MgiCLGGNauXUtxcTGfzpxFXe0+JC4Rd3onvFknEUjNjdj5hIgHgTHENOwhbu8mEmq2YDxOUlJSGTFiOCNHjqR37976zc5mtmzZwh2334Zx1XJPvxraphx5qYrVVQ4mrmxNQdv2PDbxce0K+p4sDwIRaQ+8DOQBBphkjPmniGQC/wM6AVuBnxhjqo/2Ws09CA7m8/koKSnhk08+4bP58/F6PBE9nxCpIBB3ffDDvyrY7+9wxHHGGUM477zzKCoqIi5OJ+TZWWlpaTAMnDU8VFhFWvyhn0Pl9bH837J02rTvyGMTH9c1gX6AaAiCAqDAGLNcRFoBy4DLgOuBKmPMwyJyD5BhjLn7aK/VkoLgYI2NjcydO5ePP/6YL7/8EgieT/Bkn4wvoxPENv25/LAGQcCHo7qM+D1ff9Pv37s3F4waxdlnn02rVnrSXH1jw4YN3HzTTZyU6uSuvvuIPWhQWKNP+NOyDDzxGUx6/oVmsQF8NLI8CA55I5H3gKdCf84xxuwMhcUcY0z3oz23pQbBwfafT/jwo4/YuWMH4kjAndkFb87JBJKbrjkcjiCIcVYTV7mehKrNGK+L3Nw8LrhgFOedd572+6ujmjFjBg8//DBjujZwYQfXgeP/XpfCvF3JPP7445x66qkWVti8RdU8AhHpRHD/4iVAnjFmZ+iuXQS7jmwvPz+fsWPHcu211/Lll18yffp05syZi69iLYHUXNy5pwRbCdEyg9kEcFSXklCxhpi63cTGxnLWWWcxevRo+vfvr2P+1XEZNWoUs2fN4r0vPufMfDdp8Yayuljm7kjkyh9foSEQIWFvEYhIKjAX+Isx5m0RqTHGpB90f7Ux5pDOPxGZAEwA6NChw4DS0tKw1hmNamtrKS4u5q2332bH9u1IfDKunB54c7oH9+r9AU64ReBzE1+5joTK9eCuJzcvn8t/dBmjRo0iPT392M9X6jtKS0v52fXXc1GHBn58kpMnVqay3pnJ61P+q92JJygqWgQiEge8BbxmjHk7dHi3iBQc1DVUcbjnGmMmAZMg2DUUzjqjVVpaGldccQU/+tGPWLp0KVOnvsXSpZ+TuGsF7uzuePJ7Y+Ijs5G2eJ3E7VpFYuU6jN/Laaf158orr2DQoEHExkZJK0U1Sx07dqRoYBHzv1zCyHYuvtiTwBU/vkhDIILCFgQSHBP4IrDWGPPYQXe9D4wDHg5dvheuGlqKmJgYBg4cyMCBAyktLeX111+nuLiY+Mp1eLK64WnTN2yBIF4n8Tu+ImHP12D8DBs2jGuvvVZXdlRNatSoC1i8eAlTNqbgN3D++edbXZKthHPU0JnAZ8BKYP+skfsInid4A+gAlBIcPlp1tNeyw8ni72vnzp1MmTKF6dOnE0Bw5fXGk9/nmPskHHfXkN9H/O5VJO5aiZgA559/Htdcc42u7KjCora2lksuuQSAjPTWvP3Ouzq/pAlY3jVkjJkPHOl/ckS43tcuCgoKuPPOOxkzZgzPP/88s2fPJnHP1zS2K8KXeWL7JDiqS0nathjcDQw54wx++ctf0r59+yasXqlvS0tLo0P7dpRtK6dX7z4aAhGmi841c23atOGPf/wjV155Jf984gm+Xj8HX/VmXB2HYOKSD3n80TajEa+LhLJFxFVtoXOXLtx+22307ds3nOUrdUC79h0o21auXzosoEHQQvTq1Ytnnn6aqVOn8sILLxK3+l0augzDn/btbRzdHQYd9vkx9RWkbJpFrN/NuJ//nKuvvlrX/VcRFR8fXJAxPz/f4krsRwd7tyD7l/198cUXaJufQ/LXHxNXsfbYz9uzgZT1H5Gf1ZpJkyZx3XXXaQioiNvfHZScfGhLVoWXBkEL1LFjR5579lkGFhWRWLqIuF2rj/jYuIp1JG35jNP69mXSv/7FSSedFMFKlVLRQIOghUpNTeUvf/kzZw0dSuK2JTj2bDjkMY6qLSSWLqSoqIhHH32EtLQ0CypVKmh/i0BnpUee/ou3YA6Hgz888ACn9e9PctkixLXvwH3irie5dAGn9OzJgw8+qKuBKmVjGgQtXFxcHL+/7z6SExNJ3jofQvNGkkoXEu+I4Q8PPEBiYqLFVSqlrKRBYAPZ2dlMmHBDcHG4ul3E1FcSu6+cn11/PQUFBcd+AaUiqDlsltXSaBDYxKhRo0hrnU5cxRriK9aSlJzMxRdfbHVZSh1CJ5NFngaBTSQkJDDsnLOJr91OXE0pZ515JikpkVmwTqnvQ1sEkadBYCOFhYUYvw/8XgoLj7n8iFKW0BZB5GkQ2EjXrl0Pe12paKItgsjTILCRvLxvNoPTLSRVtNGWgHU0CGzk4Ik6CQkJFlailIomGgRKKWVzGgRKKWVzGgRKKWVzYQsCEfm3iFSIyKqDjmWKSLGIbAhdZoTr/ZVSSh2fcLYIXgJGfefYPcBMY0w3YGbotlJKKQuFLQiMMfOA725KfykwOXR9MnBZuN5fKaXU8Yn0OYI8Y8zO0PVdQN7RHqyUUir8LDtZbILTB484hVBEJohIiYiUVFZWRrAypZSyl0gHwW4RKQAIXVYc6YHGmEnGmEJjTGFOTk7EClRKKbuJdBC8D4wLXR8HvBfh91dKRSldY8g64Rw+OgVYBHQXkXIRGQ88DIwUkQ3AuaHbSil1gK45FHmOcL2wMeaqI9w1IlzvqZRqvrRFYB2dWayUUjanQaCUigr7u4S0ZRB5GgRKqaii5wgiT4NAKRVVtEUQeRoESqmooi2CyNMgUEpFFW0RRJ4GgVIqqmiLIPI0CGxKv3WpaLP/Z1J/NiNPg8BGPB7Pget1dXUWVqLUkWmLIPI0CGxk586dB67v2LHDwkqUOjKXy2V1CbajQWAjW7ZsOex1paJJbW2t1SXYjgaBjaxduxYkBmJig9eViiJutxuA6upqiyuxn7AtOqeiT0nJMvypuZgYB0tLllldjlLfUlkR3J5k7969FldiP9oisIk9e/awadNGfGlt8bVux84d2ykvL7e6LKUOqKwMBsH+QFCRo0FgE/PmzQPAl9ERX3oHAObOnWtlSUod4Ha7qdkXPDewa5cOZIg0DQKbmDV7NiY5k0BSOiYhlUBqLjNnzbK6LKUA2L17NwDZiX727KnC5/NZXJG9aBDYwJ49e1i9ahWejE4HjnkyOrF50ybtHlJRoSLUHXRyax8BY/Q8QYRZEgQiMkpE1ovIRhG5x4oa7GTJkiUYY/CldzxwzJcRvL548WKrylLqgMrKSgC6tfYC3wSDioyIB4GIxAJPAxcAPYGrRKRnpOuwk+XLlyPxKQSS0g8cMwmtIKk1JTp6SEWB/UNG26X6Adi3b5+V5diOFS2CImCjMWazMcYD/Be41II6bGPTps14kzPhO1P3vUlZbNaJZSoK1NXV4YiBrIQAoJPKIs2KIGgLbDvodnnomAqTXbt3E4hPPeR4ICGVyordusiXspzH4yE+VoiLDf4ser1eiyuyl6g9WSwiE0SkRERK9vcfqh8m2BA4/EJeEhOji3wpy/n9fmLkmw8kv99vaT12Y0UQbAfaH3S7XejYtxhjJhljCo0xhTk5ORErriVKSUlBfO5DjovPTVJSsgUVKfVtCQkJePwGT0AO3FaRY0UQLAW6iUhnEYkHxgDvW1CHbZzUpQsO16Hrtzic1XTp0tmCipT6tqSkJDx+aPDJgdsqciIeBMYYH/Br4GNgLfCGMWZ1pOuwk169eiGNVYjX+c1Bv4eYhj307tXLusKUCsnIyACgvD72W7dVZFhyjsAY86Ex5mRjzEnGmL9YUYOdDB48GIDYmm/O0Tv2bQcTOHCfUlbKysoCYEtdcB3MzMxMK8uxnag9WayaTteuXcnNyyeueuuBY46qLbROT6eXtghUFMjLywNgfU0cALm5uVaWYzsaBDYgIowYPgxH7Q7wucHvJb62nGHnnENsbKzV5Sl1IAi21jlIa5Wq5wgiTIPAJs4++2wwARw1ZTj2lWP8vuAxpaJAq1atSAyNFMrLy7e4GvvRILCJ7t27k5mVhaNmG4595aSkpNKnTx+ry1IKCLZac3ODw8Tz8jUIIk2DwCZEhKLTTye+fhdxdTspLByAw6Eb1KnokZ0TPC+QnZ1tcSX2o0FgI71798Z4XeCup3fv3laXo9S3tG7dGtARQ1bQILCR7t27H/a6UtFkfyCoyNG+ARvp2rUrf/3rX/H7/Xp+QEWdrl27Mnv2bPL1HEHESXNYebKwsNCUlJRYXYZSKowCgQC7d+8mPz9fF0JsIiKyzBhTeKzHaYtAKRUVYmJiKCgosLoMW9JzBEopZXMaBEopZXMaBEopZXMaBEopZXMaBEopZXMaBEopZXMaBEopZXPNYkKZiFQCpVbX0YJkA3usLkKpw9CfzabV0RiTc6wHNYsgUE1LREqOZ7ahUpGmP5vW0K4hpZSyOQ0CpZSyOQ0Ce5pkdQFKHYH+bFpAzxEopZTNaYtAKaVsToPARkRklIisF5GNInKP1fUotZ+I/FtEKkRkldW12JEGgU2ISCzwNHAB0BO4SkR6WluVUge8BIyyugi70iCwjyJgozFmszHGA/wXuNTimpQCwBgzD6iyug670iCwj7bAtoNul4eOKaVsToNAKaVsToPAPrYD7Q+63S50TCllcxoE9rEU6CYinUUkHhgDvG9xTUqpKKBBYBPGGB/wa+BjYC3whjFmtbVVKRUkIlOARUB3ESkXkfFW12QnOrNYKaVsTlsESillcxoESillcxoESillcxoESillcxoESillcxoEyjZEpJ2IvCciG0Rkk4j8MzSn4mjPuS9S9SllFQ0CZQsiIsDbwLvGmG7AyUAq8JdjPFWDQLV4GgTKLoYDLmPMfwCMMX7gDuDnInKTiDy1/4EiMk1EzhGRh4EkEflSRF4L3XediKwQka9E5JXQsU4iMit0fKaIdAgdf0lEnhWRxSKyOfSa/xaRtSLy0kHvd56ILBKR5SLypoikRuxfRSk0CJR99AKWHXzAGFMLlAGOwz3BGHMP4DTG9DPGXCMivYD7geHGmL7AbaGHPglMNsacCrwGPHHQy2QAgwmGzvvAxFAtfUSkn4hkh17zXGNMf6AEuLMp/sJKHa/D/gIopQ5rOPCmMWYPgDFm//r5g4HLQ9dfAR496DkfGGOMiKwEdhtjVgKIyGqgE8HF/3oCC4K9V8QTXGpBqYjRIFB2sQa48uADIpIGdABq+HbrOLEJ39cdugwcdH3/bQfgB4qNMVc14Xsq9b1o15Cyi5lAsohcBwe27vwHwS0SNwP9RCRGRNoT3M1tP6+IxIWuzwJ+LCJZodfIDB1fSHA1V4BrgM++R12LgTNEpGvoNVNE5OTv+5dT6kRoEChbMMHVFX9E8IN8A/A14CI4KmgBsIVgq+EJYPlBT50ErBCR10Krtf4FmCsiXwGPhR5zC/AzEVkBjOWbcwfHU1clcD0wJfT8RUCPH/r3VOqH0NVHlVLK5rRFoJRSNqdBoJRSNqdBoJRSNqdBoJRSNqdBoJRSNqdBoJRSNqdBoJRSNqdBoJRSNvf/AU5no40uF674AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'BMI']],\n",
    "              x=\"Outcome\",y=\"BMI\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二者区别较小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa779893a58>"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'DiabetesPedigreeFunction']],\n",
    "              x=\"Outcome\",y=\"DiabetesPedigreeFunction\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fa7797f99b0>"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "sns.violinplot(data=train[['Outcome',\n",
    "                        'Age']],\n",
    "              x=\"Outcome\",y=\"Age\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二者年龄分布区别挺大\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "#分割数据\n",
    "y_train=train['Outcome']\n",
    "X_train=train.drop(['Outcome'],axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  \n",
       "0                     0.627   50  \n",
       "1                     0.351   31  \n",
       "2                     0.672   32  \n",
       "3                     0.167   21  \n",
       "4                     2.288   33  "
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0      1\n",
       "1      0\n",
       "2      1\n",
       "3      0\n",
       "4      1\n",
       "5      0\n",
       "6      1\n",
       "7      0\n",
       "8      1\n",
       "9      1\n",
       "10     0\n",
       "11     1\n",
       "12     0\n",
       "13     1\n",
       "14     1\n",
       "15     1\n",
       "16     1\n",
       "17     1\n",
       "18     0\n",
       "19     1\n",
       "20     0\n",
       "21     0\n",
       "22     1\n",
       "23     1\n",
       "24     1\n",
       "25     1\n",
       "26     1\n",
       "27     0\n",
       "28     0\n",
       "29     0\n",
       "      ..\n",
       "738    0\n",
       "739    1\n",
       "740    1\n",
       "741    0\n",
       "742    0\n",
       "743    1\n",
       "744    0\n",
       "745    0\n",
       "746    1\n",
       "747    0\n",
       "748    1\n",
       "749    1\n",
       "750    1\n",
       "751    0\n",
       "752    0\n",
       "753    1\n",
       "754    1\n",
       "755    1\n",
       "756    0\n",
       "757    1\n",
       "758    0\n",
       "759    1\n",
       "760    0\n",
       "761    1\n",
       "762    0\n",
       "763    0\n",
       "764    0\n",
       "765    0\n",
       "766    1\n",
       "767    0\n",
       "Name: Outcome, Length: 768, dtype: int64"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/preprocessing/data.py:617: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.partial_fit(X, y)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/base.py:462: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.fit(X, **fit_params).transform(X)\n"
     ]
    }
   ],
   "source": [
    "# 数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 初始化特征的标准化器\n",
    "ss_X = StandardScaler()\n",
    "\n",
    "# 分别对训练和测试数据的特征进行标准化处理\n",
    "X_train = ss_X.fit_transform(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/model_selection/_split.py:2069: FutureWarning: From version 0.21, test_size will always complement train_size unless both are specified.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "#数据分割\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train_part, X_val, y_train_part, y_val = train_test_split(X_train, y_train, train_size = 0.8,random_state = 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='warn',\n",
       "          n_jobs=None, penalty='l2', random_state=None, solver='warn',\n",
       "          tol=0.0001, verbose=0, warm_start=False),\n",
       "       fit_params=None, iid='warn', n_jobs=None,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#logistic回归，并采用最佳正则参数（L1/L2, lambda）,所有数据用5折交叉验证寻找最优参数\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "#需要调优的参数\n",
    "# 请尝试将L1正则和L2正则分开，并配合合适的优化求解算法（slover）\n",
    "#tuned_parameters = {'penalty':['l1','l2'],\n",
    "#                   'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "#                   }\n",
    "penaltys = ['l1','l2']\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs)\n",
    "\n",
    "lr_penalty= LogisticRegression()\n",
    "grid= GridSearchCV(lr_penalty, tuned_parameters,cv=5, scoring='neg_log_loss')\n",
    "grid.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.00111556, 0.00172877, 0.00191879, 0.00148106, 0.0012866 ,\n",
       "        0.00128613, 0.00133719, 0.0013104 , 0.00146451, 0.00144749,\n",
       "        0.0013351 , 0.0020431 , 0.00147748, 0.00155706]),\n",
       " 'std_fit_time': array([1.20106373e-04, 4.46332978e-04, 9.11554107e-04, 2.76933828e-04,\n",
       "        2.90027553e-05, 3.54802094e-05, 3.47354187e-05, 5.78832782e-05,\n",
       "        1.82459207e-04, 3.02523449e-04, 5.74999975e-05, 1.37098528e-03,\n",
       "        1.31426390e-04, 1.91497791e-04]),\n",
       " 'mean_score_time': array([0.00086985, 0.00134172, 0.00100732, 0.00091753, 0.00074849,\n",
       "        0.00074744, 0.00075898, 0.00075574, 0.00075493, 0.00084758,\n",
       "        0.00074105, 0.0007823 , 0.00088019, 0.00088673]),\n",
       " 'std_score_time': array([7.41371533e-05, 6.83847073e-04, 1.64039121e-04, 1.53964848e-04,\n",
       "        1.50642813e-05, 1.18674030e-05, 1.61862161e-05, 1.65658197e-05,\n",
       "        1.56861307e-05, 1.67386280e-04, 1.42297348e-05, 4.95757941e-05,\n",
       "        1.98389382e-04, 2.03432301e-04]),\n",
       " 'param_C': masked_array(data=[0.001, 0.001, 0.01, 0.01, 0.1, 0.1, 1, 1, 10, 10, 100,\n",
       "                    100, 1000, 1000],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_penalty': masked_array(data=['l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1',\n",
       "                    'l2', 'l1', 'l2', 'l1', 'l2'],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'}],\n",
       " 'split0_test_score': array([-0.69314718, -0.63247716, -0.64643499, -0.51842729, -0.49334686,\n",
       "        -0.4893871 , -0.49423769, -0.49442383, -0.49550274, -0.49553449,\n",
       "        -0.49564747, -0.49565533, -0.49566497, -0.49566752]),\n",
       " 'split1_test_score': array([-0.69314718, -0.64153853, -0.65138433, -0.54263843, -0.51620921,\n",
       "        -0.50836483, -0.50930162, -0.50834194, -0.50874603, -0.50865995,\n",
       "        -0.50870596, -0.5086969 , -0.50870066, -0.50870065]),\n",
       " 'split2_test_score': array([-0.69314718, -0.63662203, -0.64570415, -0.52403018, -0.47822865,\n",
       "        -0.48374951, -0.48179616, -0.4830274 , -0.48313479, -0.48326216,\n",
       "        -0.48328173, -0.48329051, -0.48329836, -0.4832934 ]),\n",
       " 'split3_test_score': array([-0.69314718, -0.63189062, -0.64433664, -0.50307754, -0.4540583 ,\n",
       "        -0.44275292, -0.43661853, -0.43615578, -0.43568774, -0.43565059,\n",
       "        -0.43561221, -0.43560284, -0.43559537, -0.43559809]),\n",
       " 'split4_test_score': array([-0.69314718, -0.64067605, -0.64757466, -0.53287257, -0.49692671,\n",
       "        -0.48956528, -0.48810772, -0.48793522, -0.48808613, -0.48807935,\n",
       "        -0.48809929, -0.48809877, -0.48809815, -0.48810077]),\n",
       " 'mean_test_score': array([-0.69314718, -0.63664181, -0.6470899 , -0.52422544, -0.48778588,\n",
       "        -0.48280717, -0.48206351, -0.48202874, -0.48228447, -0.48229036,\n",
       "        -0.48232249, -0.48232204, -0.48232469, -0.48232527]),\n",
       " 'std_test_score': array([1.11022302e-16, 4.00318135e-03, 2.39292199e-03, 1.33688676e-02,\n",
       "        2.07311707e-02, 2.16460757e-02, 2.44380194e-02, 2.44134571e-02,\n",
       "        2.47961367e-02, 2.47956827e-02, 2.48330776e-02, 2.48355509e-02,\n",
       "        2.48402184e-02, 2.48395553e-02]),\n",
       " 'rank_test_score': array([14, 12, 13, 11, 10,  9,  2,  1,  3,  4,  6,  5,  7,  8],\n",
       "       dtype=int32),\n",
       " 'split0_train_score': array([-0.69314718, -0.63735556, -0.64699594, -0.5192309 , -0.47577819,\n",
       "        -0.46925194, -0.46602434, -0.46594583, -0.46589353, -0.46589258,\n",
       "        -0.46589202, -0.46589201, -0.46589201, -0.46589201]),\n",
       " 'split1_train_score': array([-0.69314718, -0.63310132, -0.63649244, -0.51411049, -0.47224251,\n",
       "        -0.46704903, -0.46420484, -0.46410775, -0.46406258, -0.4640616 ,\n",
       "        -0.46406111, -0.46406111, -0.4640611 , -0.4640611 ]),\n",
       " 'split2_train_score': array([-0.69314718, -0.6356616 , -0.65056852, -0.51951737, -0.47886801,\n",
       "        -0.47222043, -0.46932983, -0.46925675, -0.4692116 , -0.46921058,\n",
       "        -0.4692101 , -0.46921009, -0.46921009, -0.46921008]),\n",
       " 'split3_train_score': array([-0.69314718, -0.63804443, -0.65182756, -0.52743851, -0.4899401 ,\n",
       "        -0.48357524, -0.48097768, -0.48088442, -0.48084379, -0.48084284,\n",
       "        -0.48084241, -0.4808424 , -0.4808424 , -0.48084239]),\n",
       " 'split4_train_score': array([-0.69314718, -0.63358836, -0.646171  , -0.51771935, -0.47759641,\n",
       "        -0.47164861, -0.46882404, -0.46875047, -0.46870586, -0.46870513,\n",
       "        -0.46870465, -0.46870464, -0.46870464, -0.46870464]),\n",
       " 'mean_train_score': array([-0.69314718, -0.63555025, -0.64641109, -0.51960333, -0.47888504,\n",
       "        -0.47274905, -0.46987214, -0.46978904, -0.46974347, -0.46974255,\n",
       "        -0.46974206, -0.46974205, -0.46974205, -0.46974205]),\n",
       " 'std_train_score': array([0.        , 0.00196666, 0.00539262, 0.00436479, 0.00596072,\n",
       "        0.00571694, 0.00585917, 0.0058569 , 0.00585954, 0.00585954,\n",
       "        0.00585957, 0.00585957, 0.00585957, 0.00585957])}"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.4820287373783356\n",
      "{'C': 1, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "# examine the best model\n",
    "print(grid.best_score_)\n",
    "print(grid.best_params_)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最佳C为1，采用l2正则。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot CV误差曲线\n",
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "# plot results\n",
    "n_Cs = len(Cs)\n",
    "number_penaltys = len(penaltys)\n",
    "test_scores = np.array(test_means).reshape(n_Cs,number_penaltys)\n",
    "train_scores = np.array(train_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_penaltys)\n",
    "train_stds = np.array(train_stds).reshape(n_Cs,number_penaltys)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(penaltys):\n",
    "    #pyplot.plot(log(Cs), test_scores[i], label= 'penalty:'   + str(value))\n",
    "    plt.errorbar(x_axis, test_scores[:,i], yerr=test_stds[:,i] ,label = penaltys[i] +' Test')\n",
    "    plt.errorbar(x_axis, train_scores[:,i], yerr=train_stds[:,i] ,label = penaltys[i] +' Train')\n",
    "    \n",
    "plt.legend()\n",
    "plt.xlabel( 'log(C)' )                                                                                                      \n",
    "plt.ylabel( 'neg-logloss' )\n",
    "plt.savefig('LogisticGridSearchCV_C.png' )\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "正则参数c=1/lambda 较小时候，对模型惩罚过多，导致模型过于简单，负logloss比较大，差，c变大后，模型精度提高了，在C=1处最佳。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.7662337662337663\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "#用最佳的C和L2对数据进行计算\n",
    "\n",
    "lr_penalty_acu= LogisticRegression(penalty='l2',C=1)\n",
    "lr_penalty_acu.fit(X_train_part, y_train_part)\n",
    "accuracy = lr_penalty_acu.score(X_val, y_val)\n",
    "print(\"accuracy: {}\".format(accuracy))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "       estimator=LinearSVC(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
       "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
       "     verbose=0),\n",
       "       fit_params=None, iid='warn', n_jobs=None,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring=None, verbose=0)"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#线性SVM选择参数\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.svm import LinearSVC\n",
    "\n",
    "penaltys_linearSVC = ['l1','l2']\n",
    "Cs_linearSVC = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters_linearSVC = dict(penalty = penaltys_linearSVC, C = Cs_linearSVC)\n",
    "\n",
    "SVC1= LinearSVC(dual=False)\n",
    "grid_svc1= GridSearchCV(SVC1, tuned_parameters_linearSVC,cv=5)\n",
    "grid_svc1.fit(X_train,y_train)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.00128984, 0.00118408, 0.00127144, 0.00106087, 0.00092793,\n",
       "        0.00098548, 0.00093999, 0.00095725, 0.00100894, 0.00117097,\n",
       "        0.00093656, 0.00096469, 0.0009542 , 0.00095539]),\n",
       " 'std_fit_time': array([6.39853496e-04, 1.52026545e-04, 3.62865539e-04, 1.47587887e-04,\n",
       "        2.93620974e-05, 4.92433591e-05, 4.13746851e-05, 2.56665103e-05,\n",
       "        1.64183101e-04, 1.60997879e-04, 1.82619294e-05, 3.67119402e-05,\n",
       "        5.72115971e-05, 2.02559841e-05]),\n",
       " 'mean_score_time': array([0.00058928, 0.0004344 , 0.00041699, 0.00030599, 0.0002758 ,\n",
       "        0.00029864, 0.00027952, 0.00027566, 0.00030246, 0.00032372,\n",
       "        0.00027919, 0.00029864, 0.00027928, 0.00026855]),\n",
       " 'std_score_time': array([5.10518051e-04, 1.39621470e-04, 1.33472419e-04, 2.89352551e-05,\n",
       "        1.20455900e-05, 2.55749244e-05, 1.65597794e-05, 1.40074923e-05,\n",
       "        5.39084600e-05, 4.56683056e-05, 1.23996000e-05, 5.19167282e-05,\n",
       "        1.72701967e-05, 1.26470663e-05]),\n",
       " 'param_C': masked_array(data=[0.001, 0.001, 0.01, 0.01, 0.1, 0.1, 1, 1, 10, 10, 100,\n",
       "                    100, 1000, 1000],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_penalty': masked_array(data=['l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1',\n",
       "                    'l2', 'l1', 'l2', 'l1', 'l2'],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'}],\n",
       " 'split0_test_score': array([0.64935065, 0.75324675, 0.75974026, 0.76623377, 0.75974026,\n",
       "        0.77922078, 0.77922078, 0.78571429, 0.78571429, 0.78571429,\n",
       "        0.78571429, 0.78571429, 0.78571429, 0.78571429]),\n",
       " 'split1_test_score': array([0.64935065, 0.70779221, 0.73376623, 0.73376623, 0.74675325,\n",
       "        0.74675325, 0.75324675, 0.74675325, 0.74675325, 0.74675325,\n",
       "        0.74675325, 0.74675325, 0.74675325, 0.74675325]),\n",
       " 'split2_test_score': array([0.64935065, 0.74675325, 0.75324675, 0.74025974, 0.75324675,\n",
       "        0.75324675, 0.75324675, 0.74675325, 0.74675325, 0.74675325,\n",
       "        0.74675325, 0.74675325, 0.74675325, 0.74675325]),\n",
       " 'split3_test_score': array([0.65359477, 0.80392157, 0.80392157, 0.81045752, 0.80392157,\n",
       "        0.81045752, 0.81045752, 0.81045752, 0.81045752, 0.81045752,\n",
       "        0.81045752, 0.81045752, 0.81045752, 0.81045752]),\n",
       " 'split4_test_score': array([0.65359477, 0.79738562, 0.77124183, 0.77777778, 0.77124183,\n",
       "        0.77777778, 0.77777778, 0.77777778, 0.77777778, 0.77777778,\n",
       "        0.77777778, 0.77777778, 0.77777778, 0.77777778]),\n",
       " 'mean_test_score': array([0.65104167, 0.76171875, 0.76432292, 0.765625  , 0.76692708,\n",
       "        0.7734375 , 0.77473958, 0.7734375 , 0.7734375 , 0.7734375 ,\n",
       "        0.7734375 , 0.7734375 , 0.7734375 , 0.7734375 ]),\n",
       " 'std_test_score': array([0.00207782, 0.03536505, 0.02319401, 0.02761262, 0.02014576,\n",
       "        0.02253911, 0.02110168, 0.0243426 , 0.0243426 , 0.0243426 ,\n",
       "        0.0243426 , 0.0243426 , 0.0243426 , 0.0243426 ]),\n",
       " 'rank_test_score': array([14, 13, 12, 11, 10,  2,  1,  2,  2,  2,  2,  2,  2,  2],\n",
       "       dtype=int32),\n",
       " 'split0_train_score': array([0.6514658 , 0.76872964, 0.77687296, 0.78338762, 0.78501629,\n",
       "        0.78338762, 0.78175896, 0.78338762, 0.78338762, 0.78338762,\n",
       "        0.78338762, 0.78338762, 0.78338762, 0.78338762]),\n",
       " 'split1_train_score': array([0.6514658 , 0.77687296, 0.77850163, 0.77361564, 0.7752443 ,\n",
       "        0.77850163, 0.77850163, 0.77687296, 0.77687296, 0.77687296,\n",
       "        0.77687296, 0.77687296, 0.77687296, 0.77687296]),\n",
       " 'split2_train_score': array([0.6514658 , 0.76547231, 0.77035831, 0.77850163, 0.78013029,\n",
       "        0.78175896, 0.78175896, 0.78175896, 0.78175896, 0.78175896,\n",
       "        0.78175896, 0.78175896, 0.78175896, 0.78175896]),\n",
       " 'split3_train_score': array([0.6504065 , 0.7495935 , 0.75934959, 0.76747967, 0.76910569,\n",
       "        0.76747967, 0.76747967, 0.76747967, 0.76747967, 0.76747967,\n",
       "        0.76747967, 0.76747967, 0.76747967, 0.76747967]),\n",
       " 'split4_train_score': array([0.6504065 , 0.76422764, 0.76585366, 0.78373984, 0.78536585,\n",
       "        0.78699187, 0.78699187, 0.78699187, 0.78699187, 0.78699187,\n",
       "        0.78699187, 0.78699187, 0.78699187, 0.78699187]),\n",
       " 'mean_train_score': array([0.65104208, 0.76497921, 0.77018723, 0.77734488, 0.77897248,\n",
       "        0.77962395, 0.77929822, 0.77929822, 0.77929822, 0.77929822,\n",
       "        0.77929822, 0.77929822, 0.77929822, 0.77929822]),\n",
       " 'std_train_score': array([0.00051895, 0.00886629, 0.00707237, 0.00616405, 0.00616435,\n",
       "        0.00665962, 0.00650562, 0.00674582, 0.00674582, 0.00674582,\n",
       "        0.00674582, 0.00674582, 0.00674582, 0.00674582])}"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_svc1.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7747395833333334\n",
      "{'C': 1, 'penalty': 'l1'}\n"
     ]
    }
   ],
   "source": [
    "print(grid_svc1.best_score_)\n",
    "print(grid_svc1.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将线性SVM最优参数代入到数据集计算\n",
    "    SVC2 =  LinearSVC( C = 1,penalty='l1',dual=False)\n",
    "    SVC2 = SVC2.fit(X_train_part, y_train_part)\n",
    "    \n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy1 = SVC2.score(X_val, y_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.7662337662337663\n"
     ]
    }
   ],
   "source": [
    "    print(\"accuracy: {}\".format(accuracy1))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "logistic回归和线性SVC精度相同，可能因为他们都是线性的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "  kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
       "  shrinking=True, tol=0.001, verbose=False),\n",
       "       fit_params=None, iid='warn', n_jobs=None,\n",
       "       param_grid={'C': array([1.e-02, 1.e-01, 1.e+00, 1.e+01, 1.e+02]), 'gamma': array([1.e-03, 1.e-02, 1.e-01, 1.e+00, 1.e+01])},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring=None, verbose=0)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#SVM rbf核参数寻优\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "\n",
    "Cs_SVC =  np.logspace(-2,2, 5)\n",
    "gamma_s = np.logspace(-3, 1, 5)  \n",
    "tuned_parameters_SVC = dict(C = Cs_SVC, gamma= gamma_s)\n",
    "\n",
    "SVC3 =  SVC(kernel='rbf')\n",
    "\n",
    "\n",
    "grid_svc3= GridSearchCV(SVC3, tuned_parameters_SVC,cv=5)\n",
    "grid_svc3.fit(X_train,y_train)\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/lusha/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:125: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.01127601, 0.00815415, 0.01018195, 0.01227746, 0.01809955,\n",
       "        0.00880275, 0.00819902, 0.00990791, 0.01256671, 0.02245369,\n",
       "        0.00896287, 0.00829315, 0.0094048 , 0.01463504, 0.02213917,\n",
       "        0.00793829, 0.01105947, 0.01264315, 0.0164546 , 0.02772646,\n",
       "        0.00853496, 0.01248522, 0.0296587 , 0.0163887 , 0.02751994]),\n",
       " 'std_fit_time': array([2.63883197e-03, 8.36955849e-05, 1.77384410e-04, 1.09637430e-03,\n",
       "        2.62862857e-04, 1.10699941e-04, 1.39902381e-04, 1.45823586e-04,\n",
       "        4.25696079e-04, 2.44368341e-03, 2.24753440e-04, 1.04521212e-03,\n",
       "        3.46943079e-04, 5.24048319e-04, 5.39596871e-04, 1.22172213e-04,\n",
       "        5.79283869e-03, 7.77749199e-04, 2.28228461e-04, 2.37121938e-04,\n",
       "        1.44580879e-04, 6.88185561e-04, 1.54953061e-03, 1.69854282e-04,\n",
       "        3.10864183e-04]),\n",
       " 'mean_score_time': array([0.00220528, 0.00170894, 0.0022028 , 0.00283804, 0.0029665 ,\n",
       "        0.0019228 , 0.0017561 , 0.00211072, 0.00254664, 0.00343113,\n",
       "        0.0019599 , 0.00160356, 0.00195298, 0.00262823, 0.00325155,\n",
       "        0.00164084, 0.00233555, 0.00189023, 0.00244493, 0.00294847,\n",
       "        0.00151401, 0.00138307, 0.00168924, 0.00242653, 0.00286665]),\n",
       " 'std_score_time': array([4.71982866e-04, 3.46022166e-05, 3.41740911e-05, 5.10533016e-04,\n",
       "        3.86739923e-05, 1.99323636e-05, 3.92786487e-05, 2.19924824e-05,\n",
       "        7.85302593e-05, 7.37947991e-04, 4.25248393e-05, 3.27710305e-05,\n",
       "        1.80423902e-04, 8.15336605e-05, 6.07291931e-04, 3.09853907e-05,\n",
       "        1.38532522e-03, 3.26212919e-04, 1.16755991e-05, 6.45450483e-05,\n",
       "        1.91706329e-05, 4.99449082e-05, 5.59021970e-05, 3.27433352e-05,\n",
       "        3.61707309e-05]),\n",
       " 'param_C': masked_array(data=[0.01, 0.01, 0.01, 0.01, 0.01, 0.1, 0.1, 0.1, 0.1, 0.1,\n",
       "                    1.0, 1.0, 1.0, 1.0, 1.0, 10.0, 10.0, 10.0, 10.0, 10.0,\n",
       "                    100.0, 100.0, 100.0, 100.0, 100.0],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_gamma': masked_array(data=[0.001, 0.01, 0.1, 1.0, 10.0, 0.001, 0.01, 0.1, 1.0,\n",
       "                    10.0, 0.001, 0.01, 0.1, 1.0, 10.0, 0.001, 0.01, 0.1,\n",
       "                    1.0, 10.0, 0.001, 0.01, 0.1, 1.0, 10.0],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.01, 'gamma': 0.001},\n",
       "  {'C': 0.01, 'gamma': 0.01},\n",
       "  {'C': 0.01, 'gamma': 0.1},\n",
       "  {'C': 0.01, 'gamma': 1.0},\n",
       "  {'C': 0.01, 'gamma': 10.0},\n",
       "  {'C': 0.1, 'gamma': 0.001},\n",
       "  {'C': 0.1, 'gamma': 0.01},\n",
       "  {'C': 0.1, 'gamma': 0.1},\n",
       "  {'C': 0.1, 'gamma': 1.0},\n",
       "  {'C': 0.1, 'gamma': 10.0},\n",
       "  {'C': 1.0, 'gamma': 0.001},\n",
       "  {'C': 1.0, 'gamma': 0.01},\n",
       "  {'C': 1.0, 'gamma': 0.1},\n",
       "  {'C': 1.0, 'gamma': 1.0},\n",
       "  {'C': 1.0, 'gamma': 10.0},\n",
       "  {'C': 10.0, 'gamma': 0.001},\n",
       "  {'C': 10.0, 'gamma': 0.01},\n",
       "  {'C': 10.0, 'gamma': 0.1},\n",
       "  {'C': 10.0, 'gamma': 1.0},\n",
       "  {'C': 10.0, 'gamma': 10.0},\n",
       "  {'C': 100.0, 'gamma': 0.001},\n",
       "  {'C': 100.0, 'gamma': 0.01},\n",
       "  {'C': 100.0, 'gamma': 0.1},\n",
       "  {'C': 100.0, 'gamma': 1.0},\n",
       "  {'C': 100.0, 'gamma': 10.0}],\n",
       " 'split0_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.78571429, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.77922078, 0.77272727, 0.70779221, 0.64935065,\n",
       "        0.76623377, 0.75974026, 0.72727273, 0.68831169, 0.64935065,\n",
       "        0.77272727, 0.75974026, 0.68181818, 0.68831169, 0.64935065]),\n",
       " 'split1_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.74025974, 0.64935065, 0.64935065,\n",
       "        0.66233766, 0.74675325, 0.74675325, 0.69480519, 0.64935065,\n",
       "        0.75974026, 0.77272727, 0.74675325, 0.62987013, 0.64935065,\n",
       "        0.77922078, 0.75324675, 0.66233766, 0.62987013, 0.64935065]),\n",
       " 'split2_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.75974026, 0.64935065, 0.64935065,\n",
       "        0.65584416, 0.78571429, 0.75324675, 0.69480519, 0.64935065,\n",
       "        0.75974026, 0.77272727, 0.74675325, 0.71428571, 0.64935065,\n",
       "        0.76623377, 0.75974026, 0.74025974, 0.71428571, 0.64935065]),\n",
       " 'split3_test_score': array([0.65359477, 0.65359477, 0.65359477, 0.65359477, 0.65359477,\n",
       "        0.65359477, 0.65359477, 0.77124183, 0.65359477, 0.65359477,\n",
       "        0.66013072, 0.81699346, 0.81045752, 0.76470588, 0.65359477,\n",
       "        0.80392157, 0.81699346, 0.81699346, 0.71895425, 0.65359477,\n",
       "        0.81699346, 0.79738562, 0.71895425, 0.71895425, 0.65359477]),\n",
       " 'split4_test_score': array([0.65359477, 0.65359477, 0.65359477, 0.65359477, 0.65359477,\n",
       "        0.65359477, 0.65359477, 0.75816993, 0.65359477, 0.65359477,\n",
       "        0.65359477, 0.75816993, 0.77777778, 0.69281046, 0.65359477,\n",
       "        0.75163399, 0.76470588, 0.82352941, 0.71895425, 0.65359477,\n",
       "        0.75163399, 0.77777778, 0.77124183, 0.71895425, 0.65359477]),\n",
       " 'mean_test_score': array([0.65104167, 0.65104167, 0.65104167, 0.65104167, 0.65104167,\n",
       "        0.65104167, 0.65104167, 0.76302083, 0.65104167, 0.65104167,\n",
       "        0.65625   , 0.77734375, 0.77213542, 0.7109375 , 0.65104167,\n",
       "        0.76822917, 0.77734375, 0.77213542, 0.69401042, 0.65104167,\n",
       "        0.77734375, 0.76953125, 0.71484375, 0.69401042, 0.65104167]),\n",
       " 'std_test_score': array([0.00207782, 0.00207782, 0.00207782, 0.00207782, 0.00207782,\n",
       "        0.00207782, 0.00207782, 0.01508178, 0.00207782, 0.00207782,\n",
       "        0.00462753, 0.02426584, 0.02235421, 0.02734531, 0.00207782,\n",
       "        0.01839449, 0.0203886 , 0.0398627 , 0.034085  , 0.00207782,\n",
       "        0.02178542, 0.01611631, 0.03921836, 0.034085  , 0.00207782]),\n",
       " 'rank_test_score': array([14, 14, 14, 14, 14, 14, 14,  8, 14, 14, 13,  1,  4, 10, 14,  7,  1,\n",
       "         4, 11, 14,  1,  6,  9, 11, 14], dtype=int32),\n",
       " 'split0_train_score': array([0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 ,\n",
       "        0.6514658 , 0.6514658 , 0.77687296, 0.6514658 , 0.6514658 ,\n",
       "        0.65798046, 0.78013029, 0.82410423, 0.96579805, 1.        ,\n",
       "        0.78175896, 0.79315961, 0.88436482, 1.        , 1.        ,\n",
       "        0.78175896, 0.81921824, 0.94136808, 1.        , 1.        ]),\n",
       " 'split1_train_score': array([0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 ,\n",
       "        0.6514658 , 0.6514658 , 0.77198697, 0.6514658 , 0.6514658 ,\n",
       "        0.65635179, 0.78013029, 0.81758958, 0.96416938, 1.        ,\n",
       "        0.77035831, 0.78664495, 0.87785016, 1.        , 1.        ,\n",
       "        0.78175896, 0.79967427, 0.94788274, 1.        , 1.        ]),\n",
       " 'split2_train_score': array([0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 , 0.6514658 ,\n",
       "        0.6514658 , 0.65309446, 0.79478827, 0.6514658 , 0.6514658 ,\n",
       "        0.65472313, 0.78338762, 0.82410423, 0.95439739, 1.        ,\n",
       "        0.78175896, 0.79641694, 0.8713355 , 1.        , 1.        ,\n",
       "        0.79153094, 0.81270358, 0.93648208, 1.        , 1.        ]),\n",
       " 'split3_train_score': array([0.6504065 , 0.6504065 , 0.6504065 , 0.6504065 , 0.6504065 ,\n",
       "        0.6504065 , 0.6504065 , 0.75609756, 0.6504065 , 0.6504065 ,\n",
       "        0.6504065 , 0.77398374, 0.80162602, 0.95934959, 1.        ,\n",
       "        0.77073171, 0.77886179, 0.86829268, 1.        , 1.        ,\n",
       "        0.76747967, 0.80813008, 0.93333333, 1.        , 1.        ]),\n",
       " 'split4_train_score': array([0.6504065 , 0.6504065 , 0.6504065 , 0.6504065 , 0.6504065 ,\n",
       "        0.6504065 , 0.6504065 , 0.78211382, 0.6504065 , 0.6504065 ,\n",
       "        0.65691057, 0.79186992, 0.8195122 , 0.96097561, 1.        ,\n",
       "        0.78211382, 0.80162602, 0.86504065, 1.        , 1.        ,\n",
       "        0.79186992, 0.80650407, 0.92682927, 1.        , 1.        ]),\n",
       " 'mean_train_score': array([0.65104208, 0.65104208, 0.65104208, 0.65104208, 0.65104208,\n",
       "        0.65104208, 0.65136781, 0.77637192, 0.65104208, 0.65104208,\n",
       "        0.65527449, 0.78190037, 0.81738725, 0.960938  , 1.        ,\n",
       "        0.77734435, 0.79134186, 0.87337676, 1.        , 1.        ,\n",
       "        0.78287969, 0.80924605, 0.9371791 , 1.        , 1.        ]),\n",
       " 'std_train_score': array([0.00051895, 0.00051895, 0.00051895, 0.00051895, 0.00051895,\n",
       "        0.00051895, 0.00098476, 0.01267012, 0.00051895, 0.00051895,\n",
       "        0.00265182, 0.00584026, 0.00828503, 0.00398411, 0.        ,\n",
       "        0.00555441, 0.00790743, 0.00693187, 0.        , 0.        ,\n",
       "        0.00889203, 0.00650818, 0.00713457, 0.        , 0.        ])}"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_svc3.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.77734375\n",
      "{'C': 1.0, 'gamma': 0.01}\n"
     ]
    }
   ],
   "source": [
    "print(grid_svc3.best_score_)\n",
    "print(grid_svc3.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将SVM最优参数代入到数据集计算\n",
    "    SVC4 =  SVC( C = 1,gamma=0.01)\n",
    "    SVC4 = SVC4.fit(X_train_part, y_train_part)\n",
    "    \n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy = SVC4.score(X_val, y_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.7532467532467533\n"
     ]
    }
   ],
   "source": [
    "print(\"accuracy: {}\".format(accuracy))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "好像rbf核精度也没有比较高，可能是参数没调好\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7rc1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
